package com.ihk.test;



import java.util.Date;
import java.util.Map;

/**
 * Created by Administrator on 2016/4/26.
 * 呼叫任务：发起呼叫时产生
 */
public class CallHistory{
    private static final long serialVersionUID = 1L;

    private String mainCallPhone ; //主叫；由拨号时发送过来
    private String targetCallPhone ; //被叫；由拨号时发送过来
    private String showNum ; //主显号码：小号、E1固话等；
    private Long dataId = -1L; //置业或app数据库 数据id，用于jms推送数据时，置业或app更新数据的索引；这要求置业或app保存数据成功后再提交呼叫任务到云呼
    private Integer whereFrom = -1; //来源：app(0),置业(1)，洗号(2)，洗主显(3)，job(99999,主要用于批量插入，定时检测是否达到时间阀值)
    private Integer pageFrom = -1; //app盘源(0),app联动call(1),置业盘源(2)，置业联动call(3),电子客簿（4），测试座机页面（5）,app 拨号记录(6), (7)
    private String machineFrom ;//机器码：用于定位websocket对象（websocket）；app的话，传userId
    private Integer mainCallType = -1; //mainCallPhone是什么号码？经纪人：1/客户：0
    private String customerName; //客户名字

    private String project  ;       //项目名
    private String propertyNo  ;       //房源编号
    private Integer commitTo = -1; //提交到哪里：东进(0)/电信(1)，手机（2）(在线),手机离线(3)

    private Boolean commitOk = false; //提交呼叫任务到CTI/福建电信 成功
    private Date commitTime; //提交呼叫任务到 CTI/福建电信时间

    private Integer city = -1;  //经纪所在城市:广州(1)/东莞(2)/佛山(3)

    private String sessionId ; //会话ID
    private Integer callType = -1; //通话类型：呼出(0)、呼入(1),呼出《经纪人呼主显转接到客户》(2)

    private String ims; //计费号码，记录使用哪个计费号码呼出

    private String recordFileUrl ; //录音文件地址
    private Long recordTimeLength = -1L; //通话时长（S）
    private Integer points = 0; //消费点数（n个6秒）
    private float money = 0; //通话费用+录音费用
    private String recordFileUrlPartA ; //语音分析录音文件地址

    private String voiceType;         //语音分析结果    参照VoiceResultEnum
    private String voiceCategory;     //语音分析结果分类 参照VoiceResultEnum
    private String voiceContent;      //语音分析内容

    private Integer voiceStatus = 0;  //语音-2(旧数据) / -1(识别异常) / 0(未识别) / 1(实时已识别) / 2(JOB已识别) /3(无需识别，即已接听)
    private Integer voiceEngine;      //语音引擎 1(讯飞) / 2(百度)
    private Date voiceStartTime;      //语音分析请求时间
    private Date voiceEndTime;        //语音分析返回结果时间

    private Integer interrupt=-1; //是否中断    未中断（-1），自动动中断（0），手段中断（1）
    private Date interruptTime; //中断时间

    //=================呼叫状态================
    private Boolean mainCallRinging; //主叫响铃
    private Date mainCallRingingTime; //主叫响铃时间
    private Date receiveMainCallRingingTime; //接收主叫响铃状态时间
    private Boolean mainCallAnswered; //主叫应答
    private Date mainCallAnsweredTime; //主叫应答
    private Date receiveMainCallAnsweredTime; //接收主叫应答状态时间
    private Boolean mainCallFailed; //呼叫主叫失败：如果没有响铃，表示主叫空号；如有响铃，表示未接听或把来电号码加入黑名单或手机飞行模式（电信）
    private Date mainCallFailedTime; //呼叫主叫失败时间
    private Date receiveMainCallFailedTime; //接收呼叫主叫失败状态时间
    private Boolean targetCallRinging; //被叫响铃
    private Date targetCallRingingTime; //被叫响铃时间
    private Date receiveTargetCallRingingTime; //接收被叫响铃状态时间
    private Boolean targetCallAnswered; //被叫应答
    private Date targetCallAnsweredTime; //被叫应答
    private Date receiveTargetCallAnsweredTime; //接收被叫应答状态时间
    private Boolean targetCallFailed; //呼叫被叫失败：如果没有响铃，表示被叫空号；如有响铃，表示未接听或把来电号码加入黑名单或手机飞行模式；（电信）
    private Date targetCallFailedTime; //呼叫被叫失败时间
    private Date receiveTargetCallFailedTime; //接收呼叫被叫失败状态时间
    private Date receiveAppStartTime;  //接收app开始呼叫时间
    private Date receiveAppStopTime;   //接收app呼叫结束时间（app_stop状态的接收时间）
    private Date receiveApprecordFileTime; //接收app录音文件时间

    private Date disconnectTime; //通话结束时间（也包含使用手机拨打的结束时间）
    private Date receiveDisconnectTime; //接收通话结束时间状态时间
    private String failedReason ; //不能正常通话原因

    private String messageId ; //jms msg Id
    private String jsonpCallBack ; //用于jsonP 的callBack名，不需记录到数据库
    private Boolean isInserted = false; //用于判断是否已经入库，不需要记录到数据库

    private String today ;

    private Integer oggChange;  //是否已经将war转成ogg 空或者0 -未转过ogg,1-已成功转了ogg，-1 --转了ogg但是没找到文件，2--成功删除了对应的wav文件，-2--执行了删除文件job但是未找wav文件

    private Integer dealStatus; //是否已经转到HBase标识 空或者0 --未转移，1-已经成功转移，-1转了但是没找到文件(可能为空，可能按规则找不到)，-3（掉了转移接口但是没成功存到hbase）， 2--成功删除了对应的wav文件，-2--执行了删除文件但是job没找到wav

    private String hbaseRecordFileUrl; //hbase录音文件链接

    private String hbaseRecordFileUrlA;//hbase录音文件链接头文件

    public String getHbaseRecordFileUrl() {
        return hbaseRecordFileUrl;
    }

    public void setHbaseRecordFileUrl(String hbaseRecordFileUrl) {
        this.hbaseRecordFileUrl = hbaseRecordFileUrl;
    }

    public String getHbaseRecordFileUrlA() {
        return hbaseRecordFileUrlA;
    }

    public void setHbaseRecordFileUrlA(String hbaseRecordFileUrlA) {
        this.hbaseRecordFileUrlA = hbaseRecordFileUrlA;
    }

    public Integer getOggChange() {
        return oggChange;
    }

    public void setOggChange(Integer oggChange) {
        this.oggChange = oggChange;
    }

    public Integer getDealStatus() {
        return dealStatus;
    }

    public void setDealStatus(Integer dealStatus) {
        this.dealStatus = dealStatus;
    }

    public String getToday() {
        return today;
    }

    public void setToday(String today) {
        this.today = today;
    }

    public float getMoney() {
        return money;
    }

    public void setMoney(float money) {
        this.money = money;
    }

    public String getIms() {
        return ims;
    }

    public void setIms(String ims) {
        this.ims = ims;
    }

    public void setMainCallPhone(String mainCallPhone) {
        this.mainCallPhone = mainCallPhone;
    }

    public void setTargetCallPhone(String targetCallPhone) {
        this.targetCallPhone = targetCallPhone;
    }

    public void setShowNum(String showNum) {
        this.showNum = showNum;
    }

    public void setDataId(Long dataId) {
        this.dataId = dataId;
    }

    public void setWhereFrom(Integer whereFrom) {
        this.whereFrom = whereFrom;
    }

    public void setPageFrom(Integer pageFrom) {
        this.pageFrom = pageFrom;
    }

    public void setMachineFrom(String machineFrom) {
        this.machineFrom = machineFrom;
    }

    public void setMainCallType(Integer mainCallType) {
        this.mainCallType = mainCallType;
    }

    public void setCommitTo(Integer commitTo) {
        this.commitTo = commitTo;
    }

    public void setCommitOk(Boolean commitOk) {
        this.commitOk = commitOk;
    }

    public void setCity(Integer city) {
        this.city = city;
    }

    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }

    public void setCallType(Integer callType) {
        this.callType = callType;
    }

    public void setRecordFileUrl(String recordFileUrl) {
        this.recordFileUrl = recordFileUrl;
    }

    public void setRecordTimeLength(Long recordTimeLength) {
        this.recordTimeLength = recordTimeLength;
    }

    public void setRecordFileUrlPartA(String recordFileUrlPartA) {
        this.recordFileUrlPartA = recordFileUrlPartA;
    }

    public void setVoiceType(String voiceType) {
        this.voiceType = voiceType;
    }

    public void setVoiceCategory(String voiceCategory) {
        this.voiceCategory = voiceCategory;
    }

    public void setVoiceContent(String voiceContent) {
        this.voiceContent = voiceContent;
    }

    public void setVoiceStatus(Integer voiceStatus) {
        this.voiceStatus = voiceStatus;
    }

    public void setVoiceEngine(Integer voiceEngine) {
        this.voiceEngine = voiceEngine;
    }

    public void setVoiceStartTime(Date voiceStartTime) {
        this.voiceStartTime = voiceStartTime;
    }

    public void setVoiceEndTime(Date voiceEndTime) {
        this.voiceEndTime = voiceEndTime;
    }

    public void setMainCallRinging(Boolean mainCallRinging) {
        this.mainCallRinging = mainCallRinging;
    }

    public void setMainCallRingingTime(Date mainCallRingingTime) {
        this.mainCallRingingTime = mainCallRingingTime;
    }

    public void setMainCallAnswered(Boolean mainCallAnswered) {
        this.mainCallAnswered = mainCallAnswered;
    }

    public void setMainCallAnsweredTime(Date mainCallAnsweredTime) {
        this.mainCallAnsweredTime = mainCallAnsweredTime;
    }

    public void setMainCallFailed(Boolean mainCallFailed) {
        this.mainCallFailed = mainCallFailed;
    }

    public void setMainCallFailedTime(Date mainCallFailedTime) {
        this.mainCallFailedTime = mainCallFailedTime;
    }

    public void setTargetCallRinging(Boolean targetCallRinging) {
        this.targetCallRinging = targetCallRinging;
    }

    public void setTargetCallRingingTime(Date targetCallRingingTime) {
        this.targetCallRingingTime = targetCallRingingTime;
    }

    public void setTargetCallAnswered(Boolean targetCallAnswered) {
        this.targetCallAnswered = targetCallAnswered;
    }

    public void setTargetCallAnsweredTime(Date targetCallAnsweredTime) {
        this.targetCallAnsweredTime = targetCallAnsweredTime;
    }

    public String getPropertyNo() {
        return propertyNo;
    }

    public void setPropertyNo(String propertyNo) {
        this.propertyNo = propertyNo;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public void setTargetCallFailed(Boolean targetCallFailed) {
        this.targetCallFailed = targetCallFailed;
    }

    public void setTargetCallFailedTime(Date targetCallFailedTime) {
        this.targetCallFailedTime = targetCallFailedTime;
    }

    public void setDisconnectTime(Date disconnectTime) {
        this.disconnectTime = disconnectTime;
    }

    public void setMessageId(String messageId) {
        this.messageId = messageId;
    }

    public String getMainCallPhone() {
        return mainCallPhone;
    }

    public String getTargetCallPhone() {
        return targetCallPhone;
    }

    public String getShowNum() {
        return showNum;
    }

    public Long getDataId() {
        return dataId;
    }

    public Integer getWhereFrom() {
        return whereFrom;
    }

    public Integer getPageFrom() {
        return pageFrom;
    }

    public String getMachineFrom() {
        return machineFrom;
    }

    public Integer getMainCallType() {
        return mainCallType;
    }

    public Integer getCommitTo() {
        return commitTo;
    }

    public Boolean getCommitOk() {
        return commitOk;
    }

    public Integer getCity() {
        return city;
    }

    public String getSessionId() {
        return sessionId;
    }

    public Integer getCallType() {
        return callType;
    }

    public String getRecordFileUrl() {
        return recordFileUrl;
    }

    public Long getRecordTimeLength() {
        return recordTimeLength;
    }

    public String getRecordFileUrlPartA() {
        return recordFileUrlPartA;
    }

    public String getVoiceType() {
        return voiceType;
    }

    public String getVoiceCategory() {
        return voiceCategory;
    }

    public String getVoiceContent() {
        return voiceContent;
    }

    public Integer getVoiceStatus() {
        return voiceStatus;
    }

    public Integer getVoiceEngine() {
        return voiceEngine;
    }

    public Date getVoiceStartTime() {
        return voiceStartTime;
    }

    public Date getVoiceEndTime() {
        return voiceEndTime;
    }

    public Boolean getMainCallRinging() {
        return mainCallRinging;
    }

    public Date getMainCallRingingTime() {
        return mainCallRingingTime;
    }

    public Boolean getMainCallAnswered() {
        return mainCallAnswered;
    }

    public Date getMainCallAnsweredTime() {
        return mainCallAnsweredTime;
    }

    public Boolean getMainCallFailed() {
        return mainCallFailed;
    }

    public Date getMainCallFailedTime() {
        return mainCallFailedTime;
    }

    public Boolean getTargetCallRinging() {
        return targetCallRinging;
    }

    public Date getTargetCallRingingTime() {
        return targetCallRingingTime;
    }

    public Boolean getTargetCallAnswered() {
        return targetCallAnswered;
    }

    public Date getTargetCallAnsweredTime() {
        return targetCallAnsweredTime;
    }

    public Boolean getTargetCallFailed() {
        return targetCallFailed;
    }

    public Date getTargetCallFailedTime() {
        return targetCallFailedTime;
    }

    public Date getDisconnectTime() {
        return disconnectTime;
    }

    public String getMessageId() {
        return messageId;
    }

    public String getJsonpCallBack() {
        return jsonpCallBack;
    }

    public String getFailedReason() {
        return failedReason;
    }

    public void setFailedReason(String failedReason) {
        this.failedReason = failedReason;
    }

    public void setJsonpCallBack(String jsonpCallBack) {
        this.jsonpCallBack = jsonpCallBack;
    }

    public Integer getPoints() {
        return points;
    }

    public void setPoints(Integer points) {
        this.points = points;
    }

    public Date getCommitTime() {
        return commitTime;
    }

    public void setCommitTime(Date commitTime) {
        this.commitTime = commitTime;
    }

    public Date getReceiveMainCallRingingTime() {
        return receiveMainCallRingingTime;
    }

    public void setReceiveMainCallRingingTime(Date receiveMainCallRingingTime) {
        this.receiveMainCallRingingTime = receiveMainCallRingingTime;
    }

    public Date getReceiveMainCallAnsweredTime() {
        return receiveMainCallAnsweredTime;
    }

    public void setReceiveMainCallAnsweredTime(Date receiveMainCallAnsweredTime) {
        this.receiveMainCallAnsweredTime = receiveMainCallAnsweredTime;
    }

    public Date getReceiveMainCallFailedTime() {
        return receiveMainCallFailedTime;
    }

    public void setReceiveMainCallFailedTime(Date receiveMainCallFailedTime) {
        this.receiveMainCallFailedTime = receiveMainCallFailedTime;
    }

    public Date getReceiveTargetCallRingingTime() {
        return receiveTargetCallRingingTime;
    }

    public void setReceiveTargetCallRingingTime(Date receiveTargetCallRingingTime) {
        this.receiveTargetCallRingingTime = receiveTargetCallRingingTime;
    }

    public Date getReceiveTargetCallAnsweredTime() {
        return receiveTargetCallAnsweredTime;
    }

    public void setReceiveTargetCallAnsweredTime(Date receiveTargetCallAnsweredTime) {
        this.receiveTargetCallAnsweredTime = receiveTargetCallAnsweredTime;
    }

    public Date getReceiveTargetCallFailedTime() {
        return receiveTargetCallFailedTime;
    }

    public void setReceiveTargetCallFailedTime(Date receiveTargetCallFailedTime) {
        this.receiveTargetCallFailedTime = receiveTargetCallFailedTime;
    }

    public Date getReceiveDisconnectTime() {
        return receiveDisconnectTime;
    }

    public void setReceiveDisconnectTime(Date receiveDisconnectTime) {
        this.receiveDisconnectTime = receiveDisconnectTime;
    }

    public Integer getInterrupt() {
        return interrupt;
    }

    public void setInterrupt(Integer interrupt) {
        this.interrupt = interrupt;
    }

    public Date getInterruptTime() {
        return interruptTime;
    }

    public void setInterruptTime(Date interruptTime) {
        this.interruptTime = interruptTime;
    }

    public Boolean getIsInserted() {
        return isInserted;
    }

    public void setIsInserted(Boolean isInserted) {
        this.isInserted = isInserted;
    }

    public Date getReceiveAppStartTime() {
        return receiveAppStartTime;
    }

    public void setReceiveAppStartTime(Date receiveAppStartTime) {
        this.receiveAppStartTime = receiveAppStartTime;
    }

    public Date getReceiveAppStopTime() {
        return receiveAppStopTime;
    }

    public void setReceiveAppStopTime(Date receiveAppStopTime) {
        this.receiveAppStopTime = receiveAppStopTime;
    }

    public Date getReceiveApprecordFileTime() {
        return receiveApprecordFileTime;
    }

    public void setReceiveApprecordFileTime(Date receiveApprecordFileTime) {
        this.receiveApprecordFileTime = receiveApprecordFileTime;
    }

    public String getProject() {
        return project;
    }

    public void setProject(String project) {
        this.project = project;
    }




}
